// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
+const Clutter = imports.gi.Clutter;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const St = imports.gi.St;
if (params.width && params.height) {
this.actor.width = params.width;
this.actor.height = params.height;
- this._allocationChangedSignalId = 0;
} else {
- this.actor.width = container.width;
- this.actor.height = container.height;
- this._allocationChangedSignalId = container.connect('allocation-changed', Lang.bind(this, this._allocationChanged));
+ let constraint = new Clutter.BindConstraint({ source: container,
+ coordinate: Clutter.BindCoordinate.ALL });
+ this.actor.add_constraint(constraint);
}
this._actorAddedSignalId = container.connect('actor-added', Lang.bind(this, this._actorAdded));
this._highlighted = null;
},
- _allocationChanged : function(container, box, flags) {
- Meta.later_add(Meta.LaterType.BEFORE_REDRAW, Lang.bind(this, function() {
- this.actor.width = this.width;
- this.actor.height = this.height;
- return false;
- }));
- this.width = this._container.width;
- this.height = this._container.height;
- },
-
_actorAdded : function(container, newChild) {
let children = this._container.get_children();
let myIndex = children.indexOf(this.actor);
* by destroying its container or by explicitly calling this.destroy().
*/
_onDestroy: function() {
- if (this._allocationChangedSignalId != 0)
- this._container.disconnect(this._allocationChangedSignalId);
this._container.disconnect(this._actorAddedSignalId);
this._container.disconnect(this._actorRemovedSignalId);
for (let i = 0; i < children.length; i++)
children[i].allocate_preferred_size(flags);
});
+ let constraint = new Clutter.BindConstraint({ source: global.stage,
+ coordinate: Clutter.BindCoordinate.SIZE });
+ uiGroup.add_constraint(constraint);
St.set_ui_root(global.stage, uiGroup);
global.window_group.reparent(uiGroup);
global.overlay_group.reparent(uiGroup);